Макрозасоби мови Асемблер

Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
О
Факультет:
ІСМ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2022
Тип роботи:
Лабораторна робота
Предмет:
Операційні системи

Частина тексту файла

Міністерство освіти і науки України Національний технічний університет України «Київський політехнічний інститут  ім. І. Сікорського» Кафедра автоматизації проектування енергетичних процесів і систем Лабораторна робота №8 з дисципліни «Операційні системи» «Макрозасоби мови Асемблер» Варіант №16 КИЇВ-2022 Мета: Вивчення макросів, макрокоманд та макророзширень та їхзастосування в асемблерних програмах. Теоретична частина: Обробка програми на асемблері з використанням макрозасобів неявно здійснюється транслятором у дві фази. Макрозасоби Асемблера IBM PC мають три складові: 1. Макровизначення (макрос) – набір команд, який містить опис якоїсь дії або алгоритму. Макрос повинен знаходитися на початку програми, до визначення сегментів. Синтаксис макровизначення: ім’я_макроса MACRO [список_формальних_аргументів];тіло макровизначення Endm 2. Макрокоманда – коротке посилання на макровизначення (виклик макроса): ім’я_макроса MACRO [список_формальних_аргументів] 3. Макророзширення (макропідстановка, макровставка) – вставка замість макрокоманди макроса з заміною формальних параметрів на фактичні (якщо вони є). Існує три варіанти де повинні розташовуватися макровизначення: На початку тексту програми до сегмента коду та даних. Цей варіант використовується тоді, коли визначені користувачем макрокоманди є актуальними в межах однієї програми. В окремому файлі. Такий варіант підходить при роботі з декількома програмами однієї проблемної області. Для того, щоб зробити доступними макровизначення у конкретній програмі, слід записати директиву include ім’я_файлу. В макробібліотеці. Універсальні макрокоманди, які часто використовуються в програмах користувача, (наприклад, фрагменти програмної затримки, призупинення програми до натискання клавіші, перетворення двійкових чисел у символьну форму) доцільно записати в макробібліотеку. Макробібліотека являє собою файл з текстами макровизначень, які записуються у цей файл, як у текст програми. Файл макробібліотеки може мати будь-яке ім’я і розширення, наприклад, MYMACRO.MAC. В програмі залишаються тільки макровиклики. Недоліком двох останніх способів є той факт, що у вихідний текст програми включаються абсолютно усі макровизначення. Для усунення цього недоліку використовується директива purge, в якості операндів через кому слід перелічити імена макрокоманд, які не повинні включатися в тіло програми. Для організації циклу у макровизначенні мітку треба оголосити за допомогою оператора local. LOCAL мітка...  перераховує мітки, які застосовуватимуться усередині макроозначення, щоб не виникало помилки «мітка вже визначена» при використанні макросу більше одного разу або якщо та ж мітка присутня в основному тексті програми (в WASM директива LOCAL дозволяє використовувати макрос з мітками кілька разів, але не дозволяє застосовувати мітку з тим же ім'ям в програмі). Операнд для LOCAL  мітка або список міток, які використовуватимуться в макросі. Завдання: Створіть максимальну можливу кількість макросів для вашої задачі та вставте у програму їх виклики. Індивідуальні завдання: 16. В сегменті даних створити квадратну матрицю 5*5. Діагональні елементи піднести до другого ступеня. Код для завдання 16 варіанту з коментарями: ; Хавкін А.Д. гр. ТР-15 , 16 варіант ; Макрозасоби loadData macro mov ax, Datas ; ініціалізація сегменту даних mov ds, ax endm printNum macro ;виведення числа (елементу масиву) local convtToDec local printDec xor cx, cx mov bx, 10 convtToDec: xor dx, dx div bx push dx inc cx test ax, ax jnz convtToDec mov ah, 02h printDec: pop dx add dl, 30h int 21h loop printDec endm newLine macro;макрос для перехіду на наступний рядок mov dx, offset CR_LF mov ah, 09h int 21h endm printSpace macro;макрос для виводу відстані між елементами масиву mov ah, 02h mov dl, 09h ;' ' int 21h endm printArr macro;виведення масиву на екран local rows local columns local pos local neg local nextEl xor si,si xor cx,cx mov cx,row newLine rows: push cx ...
Антиботан аватар за замовчуванням

07.07.2023 19:07

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини